package com.qst.order.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.springframework.util.StringUtils;

import java.io.IOException;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * 商品规格价格表实体类（对应表：product_spec_price）
 */
@Data  // Lombok 注解，自动生成 getter/setter、toString 等方法
@TableName("t_product_spec_price")  // 指定对应数据库表名（MyBatis-Plus 注解）
public class ProductSpecPrice {

    /**
     * 主键 ID（自增）
     * 对应表字段：id
     */
    @TableId(type = IdType.AUTO)  // 配置主键自增（MyBatis-Plus 注解）
    private Integer id;

    /**
     * 商品 ID（关联 t_product 表的 product_id）
     * 对应表字段：product_id
     */
    private Integer productId;

    /**
     * 规格组合（JSON 类型）
     * 对应表字段：spec_combo（存储格式如 {"功能":"冲浪+基础","尺寸":"7英尺"}）
     * 数据库存储 JSON 字符串，实体类中用 Map 接收（方便前端直接使用键值对）
     */
    @TableField(value = "spec_combo",typeHandler = JacksonTypeHandler.class)
    private String  specCombo;

    /**
     * 规格对应的价格
     * 对应表字段：price（保留 2 位小数）
     */
    private BigDecimal price;


}